# 导包
import logging.handlers
import os

from manager.config.Base_File_Config import BASE_PATH

"""
*******************************************************************************
                日志工具类
*******************************************************************************
"""


# logger
class GetLog:
    # 新建一个日志器变量
    __logger = None

    # 新建获取日志器的方法
    @classmethod
    # 新建获取日志器的方法
    def get_logger(cls):
        # 判断日志器为空
        if cls.__logger is None:
            # 获取日志器
            cls.__logger = logging.getLogger("logger")
            # 修改默认级别
            cls.__logger.setLevel(logging.DEBUG)
            # 创建处理器
            log_path = BASE_PATH + os.sep + "log" + os.sep + "cloud.log"
            trfh = logging.handlers.TimedRotatingFileHandler(filename=log_path,
                                                             when="midnight",
                                                             interval=1,
                                                             backupCount=5,
                                                             encoding="utf-8")

            # 创建格式化器
            fmt = "%(asctime)s | %(levelname)s | [%(filename)s(%(funcName)s:%(lineno)d)] | %(message)s"
            fmter = logging.Formatter(fmt=fmt)
            # 处理器设置格式
            trfh.setFormatter(fmter)
            # 日志器添加处理器
            cls.__logger.addHandler(trfh)

        # 返回日志器
        return cls.__logger
